package com.zjut.pojo;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ProductExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProductExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andProductIdIsNull() {
            addCriterion("Product_ID is null");
            return (Criteria) this;
        }

        public Criteria andProductIdIsNotNull() {
            addCriterion("Product_ID is not null");
            return (Criteria) this;
        }

        public Criteria andProductIdEqualTo(Integer value) {
            addCriterion("Product_ID =", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotEqualTo(Integer value) {
            addCriterion("Product_ID <>", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdGreaterThan(Integer value) {
            addCriterion("Product_ID >", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("Product_ID >=", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdLessThan(Integer value) {
            addCriterion("Product_ID <", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdLessThanOrEqualTo(Integer value) {
            addCriterion("Product_ID <=", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdIn(List<Integer> values) {
            addCriterion("Product_ID in", values, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotIn(List<Integer> values) {
            addCriterion("Product_ID not in", values, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdBetween(Integer value1, Integer value2) {
            addCriterion("Product_ID between", value1, value2, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotBetween(Integer value1, Integer value2) {
            addCriterion("Product_ID not between", value1, value2, "productId");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceIsNull() {
            addCriterion("current_Price is null");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceIsNotNull() {
            addCriterion("current_Price is not null");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceEqualTo(BigDecimal value) {
            addCriterion("current_Price =", value, "currentPrice");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceNotEqualTo(BigDecimal value) {
            addCriterion("current_Price <>", value, "currentPrice");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceGreaterThan(BigDecimal value) {
            addCriterion("current_Price >", value, "currentPrice");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("current_Price >=", value, "currentPrice");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceLessThan(BigDecimal value) {
            addCriterion("current_Price <", value, "currentPrice");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("current_Price <=", value, "currentPrice");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceIn(List<BigDecimal> values) {
            addCriterion("current_Price in", values, "currentPrice");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceNotIn(List<BigDecimal> values) {
            addCriterion("current_Price not in", values, "currentPrice");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("current_Price between", value1, value2, "currentPrice");
            return (Criteria) this;
        }

        public Criteria andCurrentPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("current_Price not between", value1, value2, "currentPrice");
            return (Criteria) this;
        }

        public Criteria andPageAddrIsNull() {
            addCriterion("page_addr is null");
            return (Criteria) this;
        }

        public Criteria andPageAddrIsNotNull() {
            addCriterion("page_addr is not null");
            return (Criteria) this;
        }

        public Criteria andPageAddrEqualTo(String value) {
            addCriterion("page_addr =", value, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrNotEqualTo(String value) {
            addCriterion("page_addr <>", value, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrGreaterThan(String value) {
            addCriterion("page_addr >", value, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrGreaterThanOrEqualTo(String value) {
            addCriterion("page_addr >=", value, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrLessThan(String value) {
            addCriterion("page_addr <", value, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrLessThanOrEqualTo(String value) {
            addCriterion("page_addr <=", value, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrLike(String value) {
            addCriterion("page_addr like", value, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrNotLike(String value) {
            addCriterion("page_addr not like", value, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrIn(List<String> values) {
            addCriterion("page_addr in", values, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrNotIn(List<String> values) {
            addCriterion("page_addr not in", values, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrBetween(String value1, String value2) {
            addCriterion("page_addr between", value1, value2, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andPageAddrNotBetween(String value1, String value2) {
            addCriterion("page_addr not between", value1, value2, "pageAddr");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNull() {
            addCriterion("product_Name is null");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNotNull() {
            addCriterion("product_Name is not null");
            return (Criteria) this;
        }

        public Criteria andProductNameEqualTo(String value) {
            addCriterion("product_Name =", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotEqualTo(String value) {
            addCriterion("product_Name <>", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThan(String value) {
            addCriterion("product_Name >", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThanOrEqualTo(String value) {
            addCriterion("product_Name >=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThan(String value) {
            addCriterion("product_Name <", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThanOrEqualTo(String value) {
            addCriterion("product_Name <=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLike(String value) {
            addCriterion("product_Name like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotLike(String value) {
            addCriterion("product_Name not like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameIn(List<String> values) {
            addCriterion("product_Name in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotIn(List<String> values) {
            addCriterion("product_Name not in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameBetween(String value1, String value2) {
            addCriterion("product_Name between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotBetween(String value1, String value2) {
            addCriterion("product_Name not between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoIsNull() {
            addCriterion("product_Using_Info is null");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoIsNotNull() {
            addCriterion("product_Using_Info is not null");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoEqualTo(String value) {
            addCriterion("product_Using_Info =", value, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoNotEqualTo(String value) {
            addCriterion("product_Using_Info <>", value, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoGreaterThan(String value) {
            addCriterion("product_Using_Info >", value, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoGreaterThanOrEqualTo(String value) {
            addCriterion("product_Using_Info >=", value, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoLessThan(String value) {
            addCriterion("product_Using_Info <", value, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoLessThanOrEqualTo(String value) {
            addCriterion("product_Using_Info <=", value, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoLike(String value) {
            addCriterion("product_Using_Info like", value, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoNotLike(String value) {
            addCriterion("product_Using_Info not like", value, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoIn(List<String> values) {
            addCriterion("product_Using_Info in", values, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoNotIn(List<String> values) {
            addCriterion("product_Using_Info not in", values, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoBetween(String value1, String value2) {
            addCriterion("product_Using_Info between", value1, value2, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductUsingInfoNotBetween(String value1, String value2) {
            addCriterion("product_Using_Info not between", value1, value2, "productUsingInfo");
            return (Criteria) this;
        }

        public Criteria andProductLinkIsNull() {
            addCriterion("product_Link is null");
            return (Criteria) this;
        }

        public Criteria andProductLinkIsNotNull() {
            addCriterion("product_Link is not null");
            return (Criteria) this;
        }

        public Criteria andProductLinkEqualTo(String value) {
            addCriterion("product_Link =", value, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkNotEqualTo(String value) {
            addCriterion("product_Link <>", value, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkGreaterThan(String value) {
            addCriterion("product_Link >", value, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkGreaterThanOrEqualTo(String value) {
            addCriterion("product_Link >=", value, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkLessThan(String value) {
            addCriterion("product_Link <", value, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkLessThanOrEqualTo(String value) {
            addCriterion("product_Link <=", value, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkLike(String value) {
            addCriterion("product_Link like", value, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkNotLike(String value) {
            addCriterion("product_Link not like", value, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkIn(List<String> values) {
            addCriterion("product_Link in", values, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkNotIn(List<String> values) {
            addCriterion("product_Link not in", values, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkBetween(String value1, String value2) {
            addCriterion("product_Link between", value1, value2, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductLinkNotBetween(String value1, String value2) {
            addCriterion("product_Link not between", value1, value2, "productLink");
            return (Criteria) this;
        }

        public Criteria andProductJdIdIsNull() {
            addCriterion("product_JD_ID is null");
            return (Criteria) this;
        }

        public Criteria andProductJdIdIsNotNull() {
            addCriterion("product_JD_ID is not null");
            return (Criteria) this;
        }

        public Criteria andProductJdIdEqualTo(String value) {
            addCriterion("product_JD_ID =", value, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdNotEqualTo(String value) {
            addCriterion("product_JD_ID <>", value, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdGreaterThan(String value) {
            addCriterion("product_JD_ID >", value, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdGreaterThanOrEqualTo(String value) {
            addCriterion("product_JD_ID >=", value, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdLessThan(String value) {
            addCriterion("product_JD_ID <", value, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdLessThanOrEqualTo(String value) {
            addCriterion("product_JD_ID <=", value, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdLike(String value) {
            addCriterion("product_JD_ID like", value, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdNotLike(String value) {
            addCriterion("product_JD_ID not like", value, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdIn(List<String> values) {
            addCriterion("product_JD_ID in", values, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdNotIn(List<String> values) {
            addCriterion("product_JD_ID not in", values, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdBetween(String value1, String value2) {
            addCriterion("product_JD_ID between", value1, value2, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductJdIdNotBetween(String value1, String value2) {
            addCriterion("product_JD_ID not between", value1, value2, "productJdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdIsNull() {
            addCriterion("product_Dbd_ID is null");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdIsNotNull() {
            addCriterion("product_Dbd_ID is not null");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdEqualTo(String value) {
            addCriterion("product_Dbd_ID =", value, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdNotEqualTo(String value) {
            addCriterion("product_Dbd_ID <>", value, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdGreaterThan(String value) {
            addCriterion("product_Dbd_ID >", value, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdGreaterThanOrEqualTo(String value) {
            addCriterion("product_Dbd_ID >=", value, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdLessThan(String value) {
            addCriterion("product_Dbd_ID <", value, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdLessThanOrEqualTo(String value) {
            addCriterion("product_Dbd_ID <=", value, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdLike(String value) {
            addCriterion("product_Dbd_ID like", value, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdNotLike(String value) {
            addCriterion("product_Dbd_ID not like", value, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdIn(List<String> values) {
            addCriterion("product_Dbd_ID in", values, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdNotIn(List<String> values) {
            addCriterion("product_Dbd_ID not in", values, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdBetween(String value1, String value2) {
            addCriterion("product_Dbd_ID between", value1, value2, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductDbdIdNotBetween(String value1, String value2) {
            addCriterion("product_Dbd_ID not between", value1, value2, "productDbdId");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoIsNull() {
            addCriterion("product_Appearance_info is null");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoIsNotNull() {
            addCriterion("product_Appearance_info is not null");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoEqualTo(String value) {
            addCriterion("product_Appearance_info =", value, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoNotEqualTo(String value) {
            addCriterion("product_Appearance_info <>", value, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoGreaterThan(String value) {
            addCriterion("product_Appearance_info >", value, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoGreaterThanOrEqualTo(String value) {
            addCriterion("product_Appearance_info >=", value, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoLessThan(String value) {
            addCriterion("product_Appearance_info <", value, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoLessThanOrEqualTo(String value) {
            addCriterion("product_Appearance_info <=", value, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoLike(String value) {
            addCriterion("product_Appearance_info like", value, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoNotLike(String value) {
            addCriterion("product_Appearance_info not like", value, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoIn(List<String> values) {
            addCriterion("product_Appearance_info in", values, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoNotIn(List<String> values) {
            addCriterion("product_Appearance_info not in", values, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoBetween(String value1, String value2) {
            addCriterion("product_Appearance_info between", value1, value2, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductAppearanceInfoNotBetween(String value1, String value2) {
            addCriterion("product_Appearance_info not between", value1, value2, "productAppearanceInfo");
            return (Criteria) this;
        }

        public Criteria andProductLocaleIsNull() {
            addCriterion("product_Locale is null");
            return (Criteria) this;
        }

        public Criteria andProductLocaleIsNotNull() {
            addCriterion("product_Locale is not null");
            return (Criteria) this;
        }

        public Criteria andProductLocaleEqualTo(String value) {
            addCriterion("product_Locale =", value, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleNotEqualTo(String value) {
            addCriterion("product_Locale <>", value, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleGreaterThan(String value) {
            addCriterion("product_Locale >", value, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleGreaterThanOrEqualTo(String value) {
            addCriterion("product_Locale >=", value, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleLessThan(String value) {
            addCriterion("product_Locale <", value, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleLessThanOrEqualTo(String value) {
            addCriterion("product_Locale <=", value, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleLike(String value) {
            addCriterion("product_Locale like", value, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleNotLike(String value) {
            addCriterion("product_Locale not like", value, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleIn(List<String> values) {
            addCriterion("product_Locale in", values, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleNotIn(List<String> values) {
            addCriterion("product_Locale not in", values, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleBetween(String value1, String value2) {
            addCriterion("product_Locale between", value1, value2, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductLocaleNotBetween(String value1, String value2) {
            addCriterion("product_Locale not between", value1, value2, "productLocale");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListIsNull() {
            addCriterion("product_Attachment_List is null");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListIsNotNull() {
            addCriterion("product_Attachment_List is not null");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListEqualTo(String value) {
            addCriterion("product_Attachment_List =", value, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListNotEqualTo(String value) {
            addCriterion("product_Attachment_List <>", value, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListGreaterThan(String value) {
            addCriterion("product_Attachment_List >", value, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListGreaterThanOrEqualTo(String value) {
            addCriterion("product_Attachment_List >=", value, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListLessThan(String value) {
            addCriterion("product_Attachment_List <", value, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListLessThanOrEqualTo(String value) {
            addCriterion("product_Attachment_List <=", value, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListLike(String value) {
            addCriterion("product_Attachment_List like", value, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListNotLike(String value) {
            addCriterion("product_Attachment_List not like", value, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListIn(List<String> values) {
            addCriterion("product_Attachment_List in", values, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListNotIn(List<String> values) {
            addCriterion("product_Attachment_List not in", values, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListBetween(String value1, String value2) {
            addCriterion("product_Attachment_List between", value1, value2, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andProductAttachmentListNotBetween(String value1, String value2) {
            addCriterion("product_Attachment_List not between", value1, value2, "productAttachmentList");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesIsNull() {
            addCriterion("watched_Times is null");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesIsNotNull() {
            addCriterion("watched_Times is not null");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesEqualTo(Integer value) {
            addCriterion("watched_Times =", value, "watchedTimes");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesNotEqualTo(Integer value) {
            addCriterion("watched_Times <>", value, "watchedTimes");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesGreaterThan(Integer value) {
            addCriterion("watched_Times >", value, "watchedTimes");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesGreaterThanOrEqualTo(Integer value) {
            addCriterion("watched_Times >=", value, "watchedTimes");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesLessThan(Integer value) {
            addCriterion("watched_Times <", value, "watchedTimes");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesLessThanOrEqualTo(Integer value) {
            addCriterion("watched_Times <=", value, "watchedTimes");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesIn(List<Integer> values) {
            addCriterion("watched_Times in", values, "watchedTimes");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesNotIn(List<Integer> values) {
            addCriterion("watched_Times not in", values, "watchedTimes");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesBetween(Integer value1, Integer value2) {
            addCriterion("watched_Times between", value1, value2, "watchedTimes");
            return (Criteria) this;
        }

        public Criteria andWatchedTimesNotBetween(Integer value1, Integer value2) {
            addCriterion("watched_Times not between", value1, value2, "watchedTimes");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNull() {
            addCriterion("end_Time is null");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNotNull() {
            addCriterion("end_Time is not null");
            return (Criteria) this;
        }

        public Criteria andEndTimeEqualTo(Date value) {
            addCriterion("end_Time =", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotEqualTo(Date value) {
            addCriterion("end_Time <>", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThan(Date value) {
            addCriterion("end_Time >", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("end_Time >=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThan(Date value) {
            addCriterion("end_Time <", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("end_Time <=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIn(List<Date> values) {
            addCriterion("end_Time in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotIn(List<Date> values) {
            addCriterion("end_Time not in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeBetween(Date value1, Date value2) {
            addCriterion("end_Time between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("end_Time not between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andDiscountIsNull() {
            addCriterion("discount is null");
            return (Criteria) this;
        }

        public Criteria andDiscountIsNotNull() {
            addCriterion("discount is not null");
            return (Criteria) this;
        }

        public Criteria andDiscountEqualTo(BigDecimal value) {
            addCriterion("discount =", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountNotEqualTo(BigDecimal value) {
            addCriterion("discount <>", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountGreaterThan(BigDecimal value) {
            addCriterion("discount >", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("discount >=", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountLessThan(BigDecimal value) {
            addCriterion("discount <", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("discount <=", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountIn(List<BigDecimal> values) {
            addCriterion("discount in", values, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountNotIn(List<BigDecimal> values) {
            addCriterion("discount not in", values, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("discount between", value1, value2, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("discount not between", value1, value2, "discount");
            return (Criteria) this;
        }

        public Criteria andTopPriceIsNull() {
            addCriterion("top_Price is null");
            return (Criteria) this;
        }

        public Criteria andTopPriceIsNotNull() {
            addCriterion("top_Price is not null");
            return (Criteria) this;
        }

        public Criteria andTopPriceEqualTo(BigDecimal value) {
            addCriterion("top_Price =", value, "topPrice");
            return (Criteria) this;
        }

        public Criteria andTopPriceNotEqualTo(BigDecimal value) {
            addCriterion("top_Price <>", value, "topPrice");
            return (Criteria) this;
        }

        public Criteria andTopPriceGreaterThan(BigDecimal value) {
            addCriterion("top_Price >", value, "topPrice");
            return (Criteria) this;
        }

        public Criteria andTopPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("top_Price >=", value, "topPrice");
            return (Criteria) this;
        }

        public Criteria andTopPriceLessThan(BigDecimal value) {
            addCriterion("top_Price <", value, "topPrice");
            return (Criteria) this;
        }

        public Criteria andTopPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("top_Price <=", value, "topPrice");
            return (Criteria) this;
        }

        public Criteria andTopPriceIn(List<BigDecimal> values) {
            addCriterion("top_Price in", values, "topPrice");
            return (Criteria) this;
        }

        public Criteria andTopPriceNotIn(List<BigDecimal> values) {
            addCriterion("top_Price not in", values, "topPrice");
            return (Criteria) this;
        }

        public Criteria andTopPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("top_Price between", value1, value2, "topPrice");
            return (Criteria) this;
        }

        public Criteria andTopPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("top_Price not between", value1, value2, "topPrice");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andHitInfoIsNull() {
            addCriterion("hit_info is null");
            return (Criteria) this;
        }

        public Criteria andHitInfoIsNotNull() {
            addCriterion("hit_info is not null");
            return (Criteria) this;
        }

        public Criteria andHitInfoEqualTo(String value) {
            addCriterion("hit_info =", value, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoNotEqualTo(String value) {
            addCriterion("hit_info <>", value, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoGreaterThan(String value) {
            addCriterion("hit_info >", value, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoGreaterThanOrEqualTo(String value) {
            addCriterion("hit_info >=", value, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoLessThan(String value) {
            addCriterion("hit_info <", value, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoLessThanOrEqualTo(String value) {
            addCriterion("hit_info <=", value, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoLike(String value) {
            addCriterion("hit_info like", value, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoNotLike(String value) {
            addCriterion("hit_info not like", value, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoIn(List<String> values) {
            addCriterion("hit_info in", values, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoNotIn(List<String> values) {
            addCriterion("hit_info not in", values, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoBetween(String value1, String value2) {
            addCriterion("hit_info between", value1, value2, "hitInfo");
            return (Criteria) this;
        }

        public Criteria andHitInfoNotBetween(String value1, String value2) {
            addCriterion("hit_info not between", value1, value2, "hitInfo");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}